package com.maidada.codesharebackend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.maidada.codesharebackend.common.PageResult;
import com.maidada.codesharebackend.model.dto.code.CodeAddRequest;
import com.maidada.codesharebackend.model.dto.code.CodeQueryRequest;
import com.maidada.codesharebackend.model.dto.code.CodeUpdateRequest;
import com.maidada.codesharebackend.model.entity.Code;
import com.maidada.codesharebackend.model.vo.CodeVO;

/**
 * 代码表 Service
 *
 * @author wulinxuan
 */
public interface CodeService extends IService<Code> {

    /**
     * 新增代码
     *
     * @param codeAddRequest 新增请求
     * @return 代码id
     */
    Long addCode(CodeAddRequest codeAddRequest);

    /**
     * 删除代码
     *
     * @param id 代码id
     * @return 是否成功
     */
    Boolean deleteCode(Long id);

    /**
     * 修改代码
     *
     * @param codeUpdateRequest 修改请求
     * @return 是否成功
     */
    Boolean updateCode(CodeUpdateRequest codeUpdateRequest);

    /**
     * 分页查询代码
     *
     * @param codeQueryRequest 查询请求
     * @return 分页结果
     */
    PageResult<CodeVO> pageCode(CodeQueryRequest codeQueryRequest);

    /**
     * 获取代码详情
     *
     * @param id 代码id
     * @return 代码信息
     */
    CodeVO getCodeById(Long id);
}

